﻿<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <script>
         //ES6 新增了let命令，用来声明变量。它的用法类似于var，但是所声明的变量，只在let命令所在的代码块内有效。
        {
            let a = 10;
            var b = 1;
        }
        //console.log(a);  // ReferenceError: a is not defined.
        console.log(b); // 1
        //上面代码在代码块之中，分别用let和var声明了两个变量。然后在代码块之外调用这两个变量，结果let声明的变量报错，
        //var声明的变量返回了正确的值。这表明，let声明的变量只在它所在的代码块有效。

        // var 可以重复声明(不推荐)
        // 有声明提升
        // 以函数区分作用域

        // let没有声明提升
        // let的作用域是以{}区分的 块级作用域
        // let不可以重复声明
        // console.log(str); 报错

        // 同步: 代码从上往下一步一步执行,上面代码没有执行完,下边代码不会执行
        // 异步: 代码从上往下,可以让一下需要等待时间的代码同时执行,不影响下边代码的执行

         // index是全局变量
        // 循环先执行; 操作的是唯一的一个index值的更改
        // 在循环执行完后,再次使用index 得到的是更改后的index的值

         //变量：可变的量
        //const 常量 常用的量
        // 不可以重复声明
        // 没有声明提升
        // 值不可以被更改
    </script>
</body>
</html>